package Class.JDBC;

import java.sql.*;

/*
* JDBCDao
* java语言操作数据库
* jdbc定义了一套操作关系型数据库的规则 接口
* 这一套接口能操作数据库（mysql oracle DB2）
* sun公司定义了接口
* 步骤：
* 1.导入驱动jar包
* 2.注册驱动
* 3.获得数据库连接对象
* 4.定义sql 指写一个数据库语句 select * from
* 5.获取执行sql语句的对象 Statement
* 6.执行sql，接收返回
* 7.处理结果
* 8.释放资源
*   jdbc:mysql://localhost:3306/test
*   jdbc:mysql 指jdbc连接方式
*
* --localhost 127.0.0.1 可以是域名 可以是IP地址 数据库所在的服务器
* --3306 mysql数据库的端口号
* --test 数据库名
 */
public class JDBCSelect {
    public static void main(String[] args){
        Connection connection = null;  //登入/连接 数据库对象
        Statement statement = null; //执行sql的对象
        try{
            //2.注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            //3.获取数据库连接对象
            String mysqlurl="jdbc:mysql://localhost:3306/test";
            String username = "root";
            String password = "root";
            connection = DriverManager.getConnection(mysqlurl,username,password);

            //4.定义sql
//        String sql = "update sc set grade=80 where sno='S001'";
//        String sql = "insert into sc values('S002','C002',90)";
            String sql = "select sno,cno,grade from sc where sno=? and grade=?";
            //5.获取执行sql语句的对象 Statement
            PreparedStatement ps = connection.prepareStatement(sql);
            //给？赋值
            ps.setString(1,"S002");
            ps.setDouble(2,100);
            //6.执行sql，接收返回

            //查询
            ResultSet select =ps.executeQuery();
            //更新
//            int update = statement.executeUpdate(sql);
//            //7.处理结果
//            if(update>0){
//                System.out.println("数据库连接成功！");
//            }
            while (select.next()) {
                System.out.print("学号: " + select.getString("sno"));
                System.out.print(", 课程号: " + select.getString("cno"));
                System.out.print(", 成绩: " + select.getDouble("grade")+'\n');
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally {
            //8.释放资源
            try {
                if(statement!=null){
                    statement.close();
                }
                if(connection!=null){
                    connection.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
